package com.tt.payee.api;

/**
 * 枚举了一些常用API操作码
 */
public enum ResultCode implements IErrorCode {

    /**
     * 请求成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 请求失败
     */
    FAILED(500, "操作失败"),

    /**
     * 参数错误
     */
    VALIDATE_FAILED(404, "参数检验失败"),

    /**
     * 参数错误
     */
    PARAMETER_ERROR(400, "参数错误"),

    /**
     * 身份过期
     */
    UNAUTHORIZED(401, "暂未登录或token已经过期"),


    /**
     * 没有权限
     */
    FORBIDDEN(403, "没有相关权限"),

    /**
     * 没有访问API权限
     */
    API_FORBIDDEN(4003, "没有相关权限"),


    /**
     * 熔断请求
     */
    BREAKING(20002, "熔断"),

    /**
     * 非法令牌
     */
    ILLEGAL_REQUEST(50008, "请先登录"),

    /**
     * 非法令牌
     */
    TOKEN_EXPIRED(50009, "登录信息已过期，请重新登录"),

    /**
     * 存在bug
     */
    INTERNAL_ERROR(500, "出现错误了，请重试"),

    /**
     * 存在bug
     */
    LACK_PLATFORM(50010, "缺少运行平台关键字");


    private Integer code;
    private String message;

    private ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }


    @Override
    public Integer getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }
}
